package io.github.junxworks.qt.modules.mm.service;

import java.util.List;
import java.util.Set;

import io.github.junxworks.qt.modules.mm.dto.MmExpressionCondition;
import io.github.junxworks.qt.modules.mm.dto.MmExpressionDto;
import io.github.junxworks.qt.modules.mm.vo.MmExpressionVo;
import io.github.junxworks.qt.modules.mm.vo.MmVariableVo;

public interface MmExpressionService {

	List<MmExpressionVo> queryList(MmExpressionCondition condition);

	MmExpressionVo queryMmExpressionById(Long id);

	MmExpressionVo queryMmExpressionByName(String expName);

	void save(MmExpressionDto dto) throws Exception;

	String checkExpCanDelete(Long id);

	/**
	 * 查询表达式关联的所有表达式
	 *
	 * @param expId the exp id
	 * @return the sets the
	 */
	Set<Long> queryAllRelatedExpression(Long expId);

	List<Long> queryAllDatastreamByIds(List<Long> expIds);

	List<MmVariableVo> queryAllVariableByIds(List<Long> expIds);

	List<MmExpressionVo> queryAllExpressionsByIds(List<Long> expIds);
}
